home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 200 / 200.d81 / maze maker #40 (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  3KB  |  103 lines

  1. 100 ifml=1then850
  2. 110 ifml=2thenml=.:goto230
  3. 120 poke52,48:poke56,48:clr
  4. 130 poke56334,peek(56334)or1:poke53272,(peek(53272)and240)+12
  5. 140 ifpeek(12288)=60then160
  6. 150 load"pieces",8,1
  7. 160 dima$(25)
  8. 170 deffnp(qr)=1024+xp+yp*40:deffnc(qr)=55296+xp+yp*40:deffnj(qr)=peek(56320)
  9. 180 rem
  10. 190 print"[152][147][144]";
  11. 200 poke53281,12:fort=1to23:print"[152]                                        ";
  12. 210 dn$=""
  13. 220 next
  14. 230 print"";left$(dn$,23);
  15. 240 print"[144] a [159]b c d [149]e [151]f g h i j k l m [144]o s[157]^[145] z [153][163] [210][145]";
  16. 250 ov$=""
  17. 260 ford=.to15:print"";left$(ov$,36)left$(dn$,d+6);:poke646,d:print"[209][209]":next
  18. 270 print""tab(37)"[144]all"
  19. 280 print""tab(36)"[144]save"
  20. 290 print""tab(36)"[144]load":print""tab(36)"quit"
  21. 300 xp=.:yp=.:qr=.:pc=peek(fnp(qr)):ch=5:sh=9:ps=peek(fnc(qr)):sp=40:bs=.:bc=32
  22. 310 bc=32:ifch=32thenbc=160
  23. 320 geta$:iffnj(qr)<>127ora$<>""thenj=fnj(qr):goto350
  24. 330 pokefnp(qr),ch:pokefnc(qr),sh:fort=1to20:next
  25. 340 pokefnp(qr),bc:pokefnc(qr),bs:goto320
  26. 350 ifj=126andyp>.thengosub880:yp=yp-1:goto900
  27. 360 ifj=125andyp<22thengosub880:yp=yp+1:goto900
  28. 370 ifj=123andxp>.thengosub880:xp=xp-1:goto900
  29. 380 ifj=119andxp<35thengosub880:xp=xp+1:goto900
  30. 382 ifj=122andxp>.andyp>0thengosub880:yp=yp-1:xp=xp-1:goto900
  31. 384 ifj=118andyp>0andxp<35thengosub880:yp=yp-1:xp=xp+1:goto900
  32. 386 ifj=121andxp>.andyp<22thengosub880:xp=xp-1:yp=yp+1:goto900
  33. 388 ifj=117andxp<35andyp<22thengosub880:xp=xp+1:yp=yp+1:goto900
  34. 390 ifa$=chr$(160)andxp>1thengosub880:xp=xp-2:goto900
  35. 400 ifa$=""thengosub880:xp=35:goto900
  36. 410 ifa$=" "andxp<33thengosub880:xp=xp+2:goto900
  37. 420 ifa$="[157]"thengosub880:xp=.:goto900
  38. 430 ifa$="[147]"then190
  39. 440 ifa$="[145]"thengosub880:yp=.:goto900
  40. 450 ifa$="m"thengosub880:xp=17:yp=11:goto900
  41. 460 ifa$=""thengosub880:yp=22:goto900
  42. 470 ifa$="e"thenpokefnp(qr),peek(2023):pokefnc(qr),peek(53281):gosub870:goto900
  43. 480 ifj=111andyp<22andxp<35thengosub890:goto900
  44. 490 ifj=110andyp>.andxp<35thengosub890:yp=yp-1:goto900
  45. 500 ifj=109andyp<22andxp<35thengosub890:yp=yp+1:goto900
  46. 510 ifj=107andxp>.andxp<35andyp<22thengosub890:xp=xp-1:goto900
  47. 520 ifj=103andxp<35andyp<22thengosub890:xp=xp+1:goto900
  48. 530 ifj<>111then310
  49. 540 ifyp=22andpeek(1024+xp+(yp+1)*40)<>chthench=peek(1024+xp+(yp+1)*40):goto310
  50. 550 ifyp=22andpeek(1024+xp+(yp+1)*40)=chthensh=peek(55296+xp+(yp+1)*40):goto310
  51. 560 ifxp=35andyp>5thensh=peek(55296+(xp+1)+yp*40):goto310
  52. 570 ifyp=.then610
  53. 580 ifyp=1then630:rem * save
  54. 590 ifyp=2then820:rem * load
  55. 593 ifyp=4thengosub1000:goto230:rem * quit
  56. 600 goto330
  57. 610 fort=1024to1983:ifpeek(t)=chthenpoke54272+t,sh
  58. 620 next:goto330
  59. 630 print"";left$(dn$,23);"                                   "
  60. 640 print"";left$(dn$,23);
  61. 650 print"enter the # for this maze-- ";:b$="":gosub940
  62. 655 mn$=right$(str$(n),len(str$(n))-1)
  63. 660 print"";left$(dn$,23)"[144]                                     "
  64. 670 ford=.to22:print"";left$(ov$,35)left$(dn$,d);:print"     ":next
  65. 680 close15:open15,8,15,"i0:"
  66. 685 print#15,"s0:maze "+mn$+".ml":print#15,"i0":print#15,"s0:maze "+mn$+"/c.ml"
  67. 690 print#15,"i0:":close15
  68. 700 o=1024:print"";left$(dn$,23)"please wait...                   "
  69. 710 fory=.to22:a$(y)="":forx=.to38:a=peek(1024+x+y*40)
  70. 720 ifa=15thenxx=x:yy=y
  71. 730 a$(y)=a$(y)+chr$(a)
  72. 740 next:next
  73. 750 open2,8,2,"0:maze "+mn$+".ml,p,w":print#2,chr$(0)+chr$(4);
  74. 760 fort=.to22:print#2,a$(t)+" ";:next:print#2,chr$(xx):print#2,chr$(yy):close2
  75. 770 fory=.to22:a$(y)="":forx=.to38:a=peek(55296+x+y*40)
  76. 780 a$(y)=a$(y)+chr$(a)
  77. 790 next:next
  78. 800 open2,8,2,"0:maze "+mn$+"/c.ml,p,w":print#2,chr$(0)+chr$(216);
  79. 810 fort=.to22:print#2,a$(t)+" ";:next:close2:goto230
  80. 820 input"[147]maze number";mn$
  81. 830 ml=1
  82. 840 load"maze "+mn$+".ml",8,1
  83. 850 ml=2:load"maze "+mn$+"/c.ml",8,1
  84. 860 stop
  85. 870 pc=peek(2023):ps=peek(53281):return
  86. 880 pokefnp(qr),pc:pokefnc(qr),ps:return
  87. 890 pc=ch:ps=sh:pokefnp(qr),ch:pokefnc(qr),sh:return
  88. 900 ps=peek(fnc(qr)):pc=peek(fnp(qr)):ifch=32thenbc=160:goto920
  89. 910 bc=32
  90. 920 pokefnp(qr),ch:pokefnc(qr),sh
  91. 930 pokefnp(qr),bc:pokefnc(qr),bs:goto320
  92. 940 geta$:ifa$=""then940
  93. 950 ifa$=chr$(13)thenn=val(b$):return
  94. 960 ifa$=chr$(20)andb$<>""thenprint"[157] [157]";:b$=left$(b$,len(b$)-1):goto940
  95. 970 ifval(a$)=.anda$<>"0"then940
  96. 980 b$=b$+a$:print"[144]"a$;:goto940
  97. 1000 print"";left$(dn$,23);"                                   "
  98. 1005 print"";left$(dn$,23);
  99. 1010 print"are you sure you want to quit? (y/n)"
  100. 1015 gett$:ift$<>"y"andt$<>"n" then1015                          "
  101. 1020 [139]t$[178]"n"[167][142]
  102. 1030 [151]52,160:[151]56,160:[151]53272,([194](53272)[175]240)[176]4:[153]"load":[147]"as menu",8
  103.